Key Architectural Decisions
Monorepo Structure
The project uses a monorepo structure to:
- Share code efficiently between packages
- Ensure consistent tooling and dependencies
- Enable atomic commits across multiple packages
- Simplify the development workflow
Technology Stack
- Frontend: React with Vite for fast development and optimized builds
- Backend: Node.js with Express and Prisma ORM
- Documentation: Docusaurus for comprehensive, searchable documentation
- Testing: Vitest for fast, modern testing
- Code Quality: ESLint, Prettier, and Husky for consistent code standards
Development Workflow
- All code changes go through pre-commit hooks
- GitHub Actions run tests and checks on every PR
- Shared types ensure frontend and backend stay in sync
- Documentation is treated as code and versioned with the project